Communication networks must manage traffic connections intelligently to make the most effective use of finite link bandwidth. One component in an intelligent approach to link bandwidth management is a connection admission control (CAC) algorithm. When a connection request is received, CAC tries to balance the competing goals of maximizing bandwidth utilization and delivering required QoS in order to decide whether or not to accept the connection. If there are sufficient resources available to satisfy the QoS requirements of the requested new connection, as well as those of all the existing connections, CAC should accept the connection. Otherwise, it should not.
FIG. 1 shows the logical structure of a connection path across a simplified network 15. The path starts at a sending application 10 that seeks to establish communication with a designated receiving application 14. The sending application connects to the network 15 at an ingress node 11 (e.g., a router or switch; all of these terms will be used interchangeably herein to connote a physical network device that forwards data).
The ingress node 11 uses a generic CAC to estimate the likely CAC behavior of each node in the network. This takes into account both the QoS requirement of the new connection and the available bandwidth of each potential link as advertised over the network. Thus, the generic CAC allows the ingress node 11 to perform route selection for the requested connection. After the route is selected, each node along the path performs its own actual CAC; in this case, ingress node 11, intermediate node 12, and egress node 13.
One technique used by CACs is known as overbooking (or oversubscription). This refers to exploiting statistical bandwidth sharing between applications and connections, and uncertainty about the bandwidth demands of various applications. For example, not all connections or applications are active at the same time.
Link bandwidth can be partitioned into multiple pools, or shared in a single pool. Each pool can support one or more applications or QoS classes. With a single pool, also known as full sharing, there is maximum link efficiency and simplified provisioning and operations. With full partitioning, each service class (e.g., CBR, VBR-rt, VBR-nrt, UBR) has a guaranteed amount of reserved bandwidth at the cost of link fragmentation, more configuration, and routing flooding. Under a hybrid model, some service classes are combined in one pool (e.g., CBR and VBR-rt), while other service classes are in separate pools. Link overbooking is achieved by applying an overbooking factor to each pool.
But there are problems with this approach. When multiple applications share a pool, a single overbooking factor is used for all. Also, the existing pool technique is counter-intuitive; users normally think of bandwidth reservation as it relates to the actual amount of bandwidth used or required for each connection, not in terms of pool sizes. In addition, advertised available bandwidth can exceed link capacity, which is operationally confusing and may affect multi-vendor interoperability. This approach also limits the ability to tune the network traffic scheduler to suit the needs of different applications and connections (e.g., to differentiate between two VBR connections with the same traffic descriptor).